package com.itany.corejava.code01_基础;

/**
 * @author 石小俊
 * @date 2023年04月07日 13:43
 */
public class Test05_强制类型转换 {
    public static void main(String[] args) {
        // 当转换前的数据的值的大小在转换后的类型的范围内时,不会存在任何的损失
        int i = 10;
        byte b = (byte) i;
        System.out.println(b);

        // 当转换前的数据的值的大小不在目标类型范围中时,会存在数据或者精度损失的场景
        // 场景一:当值的范围超出了目标类型范围时
        int i2 = 1000;
        byte b2 = (byte) i2;
        System.out.println(b2);

        // 场景二:小数转换成整数时,整数部分在目标类型范围中
        // 此时直接截取掉小数
        double d = 3.14;
        int i3 = (int) d;
        System.out.println(i3);

        // 场景三:小数转换成整数,且整数部分也不再目标类型范围中
        // 先截取掉小数部分,再对整数部分进行二进制的处理
        double d2 = 1000.34;
        byte b3 = (byte) d2;
        System.out.println(b3);
    }
}
